<script>
import store from '@/store/index.js'
import { appUpdate } from '@/api/api.js'
export default {
	onLaunch: function () {
		//应用加载时判断用户界面语言
		// 判断用户机器语言类型或之前设置过的语言类型
		let langType = uni.getLocale()
		// console.log(langType, '判断用户机器语言类型')
		this.$getLang(langType ? langType : 'zh-Hans')
		//GraceUI导入代码
		// #ifdef APP-PLUS
		plus.screen.lockOrientation('portrait-primary');
		const dom = weex.requireModule('dom');
		dom.addRule('fontFace', {
			'fontFamily': "graceIconfont",
			'src': "url('/Grace6/font/grace.ttf')"
		});
		// #endif
		// console.log('App Launch')
		// console.log(t)
		this.GetStatusBarHeight()

		this.setTabBar()
	},
	onShow: function () {
		this.wgtUrlupload()
		// console.log('App Show')
	},
	onHide: function () {
		// console.log('App Hide')
	},
	methods: {
		// 动态设置底部tabar的内容
		setTabBar() {
			var arr = [this.$t('navigationBar.homePage'), this.$t('navigationBar.chart'), this.$t('navigationBar.annunciate'), this.$t('navigationBar.setting')]
			arr.forEach((item, index) => {
				uni.setTabBarItem({
					index: index,
					text: item,
				})
			})
		},
		// 版本更新方法
		wgtUrlupload() {
			let _this = this
			try {
				// #ifdef APP-PLUS
				/** 锁定屏幕方向 */
				plus.screen.lockOrientation('portrait-primary');
				/** 检测升级 */
				// 取得版本号
				plus.runtime.getProperty(plus.runtime.appid, function (info) {
					// 版本号变量持久化存储
					getApp().globalData.editionnum = info.version; //版本号持久化存储做其它备用
					// console.log("当前应用版本：" + info.version + "---" + plus.runtime.version);
					// console.log("appid：" + plus.runtime.appid);
					// console.log("appid基座版本号：" + plus.runtime.version);
					let data = {
						version: info.version
					}
					appUpdate(data).then(res => {
						console.log(res)
						if (res.code == 0) {
							_this.checkVersionToLoadUpdate(info.version, res.data);
						} else {
							// uni.showToast({ title: res.message, icon: "none" });
						}
					})
				})
				// #endif
			} catch (error) {

			}
		},
		/**
		 * 进行版本型号的比对 以及下载更新请求
		 * @param {Object} server_version 服务器最新 应用版本号
		 * @param {Object} curr_version 当前应用版本号
		 */
		checkVersionToLoadUpdate(server_version, data) {
			let _this = this
			if (server_version !== data.version) {
				//TODO 此处判断是否为 WIFI连接状态
				// if (plus.networkinfo.getCurrentType() != 3) {
				// 	uni.showToast({
				// 		title: _this.$t('pageTranslation.aNewVersionHasBeen'),
				// 		mask: true,
				// 		duration: 5000,
				// 		icon: "none"
				// 	});
				// 	return;
				// } else {
				// 	}
					
				
				uni.showModal({
						title: _this.$t('navigationBar.versionUpdating'),
						content: _this.$t('pageTranslation.aNewVersionHas'),
						confirmText: _this.$t('pageTranslation.updateRightNow'),
						cancelText: _this.$t('pageTranslation.goingLate'),
						success: function (res) {
							if (res.confirm) {
								uni.showToast({
									icon: "none",
									mask: true,
									title: _this.$t('pageTranslation.aNewVersion'),
									duration: 5000,
								});
								//设置 最新版本apk的下载链接
								var downloadApkUrl = data.downloadApkUrl;
								var dtask = plus.downloader.createDownload(downloadApkUrl, {}, function (d, status) {
									// 下载完成
									if (status == 200) {
										plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename), {}, {}, function (error) {
											uni.showToast({
												title: _this.$t('pageTranslation.installFail'),
												duration: 1500
											});
										})
									} else {
										uni.showToast({
											title: _this.$t('pageTranslation.updateFail'),
											duration: 1500
										});
									}
								});
								dtask.start();
				
								//加载进度条
								dtask.start();
								var prg = 0;
								var showLoading = plus.nativeUI.showWaiting("正在下载");
								dtask.addEventListener('statechanged', function (task, status) { //添加下载任务事件监听器
									// 给下载任务设置一个监听 并根据状态 做操作
									switch (task.state) {
										case 1:
											//showLoading.setTitle("正在下载");
											break;
										case 2:
											//showLoading.setTitle("已连接到服务器");
											break;
										case 3:
											prg = parseInt( //下载的进度
												(parseFloat(task.downloadedSize) / parseFloat(task
													.totalSize)) * 100
											);
											//data.percent = prg;
											showLoading.setTitle("版本更新,正在下载" + prg + "% ");
											break;
										case 4:
											plus.nativeUI.closeWaiting(); //关闭系统提示框
											//popup.value.close()
											break;
									}
				
								});
				
							} else if (res.cancel) {
								console.log('稍后更新');
							}
						}
					});
				
			}
		},
		GetStatusBarHeight() {
			let that = this;
			uni.getSystemInfo({
				success: function (res) {
					res.statusBarHeight; //这就是状态栏的高度
					// console.log(res.statusBarHeight, 'res.statusBarHeight')
					store.commit('editIStatusBarHeight', res.statusBarHeight)
				},
			});
		},
	}
}
</script>

<style lang="scss">
/* 引入表格样式表 */
@import "@/css/helang-table.scss";
/* 加载爱丽自定义样式 */
@import "./css/aili.scss";
/* 加载框架核心样式 */
@import "./Grace6/css/grace.scss";
/* 加载深色模式适配样式 */
@import "./Grace6/css/graceDark.scss";
/* 加载自定义样式 */
@import "./custom/custom.scss";

/* 加载图标字体 - 条件编译模式 */
/* #ifdef APP-PLUS-NVUE */
.gui-icons {
	font-family: graceIconfont;
}

/* #endif */
/* #ifndef APP-NVUE */
page {
	background-color: #F4F5F7;
}

/* #endif */

:deep .uni-easyinput__placeholder-class {
	color: gray !important;
	font-size: 28rpx !important;
}
</style>
